package p2pproxy;


import nfwx.analytics.BuildConfig;

public class P2PSActivate
{
	private long _handle;
	/*!
	@brief 构造激活对象
	@param activateServerURLs 激活服务器地址列表，用竖线间隔
	@param cafile CA文件路径，如果为空则使用内置的ca文件
	*/
	public P2PSActivate(Object context, String activateServers, String cafile) throws Exception {
		if (!init(context, activateServers, cafile)) {
			throw new Exception("Bad parameters");
		}
	}
	private native boolean init(Object context, String activateServers, String cafile);
	///关闭激活对象
	public native void close();
	///获取激活状态 notload 表示激活信息未加载， ok 表示正常, expired 表示过期, disabled表示被禁用, badhardware表示错误的硬件, notfound表示id或hardware激活不成功
	public native String activateStatus();
	///从数据中中激活
	public native boolean setActivateState(byte[] state);
	///获取激活数据
	public native byte[] getActivateState();
	///获取平衡器列表，以竖线间隔
	public native String getBalancers();
	/*!
	@brief 获取一个服务器地址
	@param serverType 服务器类型: channel 表示获取频道服务器地址, p2p 表示获取P2P服务器地址，live 表示获取直播服务器地址, vod 表示获取点播服务器地址, tsvod 表示获取录播服务器地址
	@param allocNew 表示分配一个新的服务器地址, 如果地址列表中有多个的话，allocNew标志会导致一个个轮换
	@return 服务器地址
	*/
	public native String allocServer(String serverType, boolean allocNew);
	///获取创建时间,单位秒, 没有则返回0
	public native long getCreateTime();
	///获取过期时间,单位秒, 没有则返回0
	public native long getExpiredTime();
	///获取激活用户ID
	public native String getUID();
	///获取附加信息
	public native String getExtra(String key);
	///获取服务器时间，如果服务器时间未取到则返回0
	public native long getServerTime();
	///获取对应网卡名的mac地址
	static public native String getMac(String adpatorName);
	
	static {
		try {
			//System.loadLibrary("p2psclient");
			System.loadLibrary(BuildConfig.SO_LIB);
		} catch(Error e) {
			e.printStackTrace();
		}
	}	
}